﻿Shader "Unlit/01"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
		_Int("Int",int) =2
		_Float("Float",float) =2
		_Rang("rang",Range(0.0,2.0))=1.5
		_Color("Color",COLOR)=(0,0,0,0)
		_Vector("vector",vector)=(1,4,3)
		_Cube("CubeMap",Cube)="white"{}//天空盒
		_3D("3D",3D)="black"{}
    }
    SubShader
    {
	//可选
        Tags //可以写pass里面也可以写外面
		{ 
			//渲染顺序
			//"Queue"="Transparent"
			//"RenderType"="Opaque" //着色器替换功能 通过c#代码进行着色器替换
			"DisableBatching" ="true"//关闭合批   做顶点变换的时候  不允许进行合批
			"ForceNoShadowCasting" ="true" //是否投射阴影
			"IgnoreProjector" ="true"//收不收projector（做阴影的东西）影响 通常用于透明物体
			"CanUseSpriteAltas" = "false" //是否适用于图片Shader 
			"previewType" ="Plane" //用作Shader面板预览类型  通常是一个球形
		}
		//可选
		cull off//裁剪  off 关闭裁剪 //back 只渲染前面背面关掉  call front(没能验证) 值渲染背面
		//深度测试
		ZTest Always //Always // less Gerater// lequal/ GEqual/ Equal/Not Equal 
		//深度 写入
		Zwrite Off
		//Blend ScrFactor Dstfactor//混合
        LOD 100//不同情况写使用不同lod 达到性能提示
		//必须
        Pass
        {
			Tags
			{
				"LightMode"="ForwardBase"//定义该pass通道在unity渲染流水中的角色
				"RequireOptions" ="SoftVegetation"//满足某些条件的时候调用
			}
			//Name ="Defalt"//pass 通道名称
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog

            #include "UnityCG.cginc"
			
            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            ENDCG
        }
    }

 //	FallBack"Legacy Shader/Transparent/VertexLit" //上面的shader不能使用的时候使用FallBack
}
